3ec41f7d3-xTeoVJBJqWqxVfU-ANoQ tools/control/src/uk/ac/cam/cl/xeno/xenctl/Parser.java
3ec41f7dOVZgjP4sQS6vjuBnExdlMQ tools/control/src/uk/ac/cam/cl/xeno/xenctl/RootBean.java
3ec41f7dvPdszb0frNEkMnEdJUBVjA tools/control/src/uk/ac/cam/cl/xeno/xenctl/SystemConfigurationBean.java
-3ec41f7dlW5Buk3MO18HHtBax1Jz9g tools/control/src/uk/ac/cam/cl/xeno/xenctl/VirtualBlockDevice.java
-3ec41f7dP3VglJUTuP45rwvSAoW_pg tools/control/src/uk/ac/cam/cl/xeno/xenctl/VirtualDisk.java
3ec41f7dO6IuKGGLG4VRUhMDmkTn5g tools/control/web/WEB-INF/web.xml
3ec41f7dRAPXBA0jQUd1k6MB3xVidg tools/control/web/img/cambridge.gif
3ec41f7dvxVe1Vb3kVOLZcN5Jra2tQ tools/control/web/img/help.gif
3eb781fd8oRfPgH7qTh7xvgmwD6NgA tools/internal/xi_start.c
3eb781fd0Eo9K1jEFCSAVzO51i_ngg tools/internal/xi_stop.c
3eb781fd7211MZsLxJSiuy7W4KnJXg tools/internal/xi_vifinit
-3ea53c6d48QGVkviHh0jBB_h_ZqZDw tools/vdmanager/src/uk/ac/cam/cl/xeno/vdmanager/VirtualDiskManager.java
3ddb79bcbOVHh38VJzc97-JEGD4dJQ xen/Makefile
3ddb79bcCa2VbsMp7mWKlhgwLQUQGA xen/README
3ddb79bcWnTwYsQRWl_PaneJfa6p0w xen/Rules.mk
+++ /dev/null
-/*
- * VirtualBlockDevice.java
- * 03.03.27 aho creation
- */
-
-package uk.ac.cam.cl.xeno.xenctl;
-
-import java.io.PrintWriter;
-
-public class
-VirtualBlockDevice
-{
- String key;
- int domain;
- int vbdnum;
- Mode mode; /* rw or ro */
-
- String
- dump (boolean title)
- {
- StringBuffer sb = new StringBuffer();
- int loop;
-
- if (title)
- {
- sb.append(" key dom vbd mode\n");
- }
- else
- {
- sb.append(" " + key + " " +
- Library.format(domain,3,0) + " " +
- Library.format(vbdnum,3,0) + " " +
- mode.toString() + "\n");
- }
-
- return sb.toString();
- }
-
- void
- dump_xml (PrintWriter out)
- {
- out.println(" <virtual_block_device>");
- out.println(" <key>" + key + "</key>");
- out.println(" <domain>" + domain + "</domain>");
- out.println(" <vbdnum>" + vbdnum + "</vbdnum>");
- out.println(" <mode>" + mode + "</mode>");
- out.println(" </virtual_block_device>");
-
- return;
- }
-
- public String
- getKey()
- {
- return key;
- }
-
- public int
- getDomain()
- {
- return domain;
- }
-
-
- public int
- getVBDNum()
- {
- return vbdnum;
- }
-
- public Mode
- getMode()
- {
- return mode;
- }
-}
+++ /dev/null
-/*
- * VirtualDisk.java
- * 03.03.26 aho creation
- */
-
-package uk.ac.cam.cl.xeno.xenctl;
-
-import java.util.Date;
-import java.util.Vector;
-import java.lang.Math;
-import java.io.PrintWriter;
-
-public class
-VirtualDisk
-{
- String name;
- String key;
- Date expiry;
- Vector extents;
-
- VirtualDisk (String name, Date expiry, String key)
- {
- this.name = name;
- this.key = key;
- this.expiry = expiry;
- extents = new Vector();
- }
-
- VirtualDisk (String name)
- {
- this (name, null, null);
- this.key = generate_key();
- extents = new Vector();
-
- return;
- }
-
- VirtualDisk (String name, Date expiry)
- {
- this(name, expiry, null);
- this.key = generate_key();
- }
-
- /*
- * generate a unique key for this virtual disk.
- * for now, just generate a 10 digit number
- */
- String
- generate_key ()
- {
- return Long.toString(1000000000l + (long)(Math.random() * 8999999999l));
- }
-
- String
- get_key ()
- {
- return key;
- }
-
- Date
- get_expiry ()
- {
- return expiry;
- }
-
- void
- set_expiry (Date expiry)
- {
- this.expiry = expiry;
- }
-
- public void
- add_extent (Extent extent)
- {
- extents.add(extent);
- }
-
- public Extent
- remove_extent ()
- {
- Extent e;
-
- if (extents.size() > 0)
- {
- e = (Extent) extents.remove(0);
- }
- else
- {
- e = null;
- }
-
- return e;
- }
-
- String
- dump (boolean details, boolean title)
- {
- StringBuffer sb = new StringBuffer();
- int loop;
-
- if (details)
- {
- if (title)
- {
- sb.append(" name: " + name + "\n");
- sb.append(" key: " + key + "\n");
- sb.append("expiry: " + expiry + "\n");
- sb.append("\n");
- }
- sb.append(" idx disk offset size \n");
- for (loop = 0; loop < extents.size(); loop++)
- {
- Extent e = (Extent) extents.get(loop);
- sb.append(" " +
- Library.format(loop,3,0) + " " +
- Library.format(e.disk,6,0) +
- Library.format(e.offset,10,0) +
- Library.format(e.size,10,0) + "\n");
- }
- }
- else
- {
- if (title)
- {
- sb.append(" key expiry name\n");
- }
- else
- {
- sb.append(" " + key + " " + expiry.toString() + " " + name + "\n");
- }
- }
-
- return sb.toString();
- }
-
- String
- dump_xen ()
- {
- StringBuffer sb = new StringBuffer();
-
- sb.append("extents:" + extents.size() + " ");
- for (int loop = 0; loop < extents.size(); loop++)
- {
- Extent e = (Extent) extents.get(loop);
- sb.append("(disk:" + e.disk + " " +
- "offset:" + e.offset + " " +
- "size:" + e.size + ")");
- }
- return sb.toString();
- }
-
- String
- dump_xen (VirtualBlockDevice vbd)
- {
- StringBuffer sb = new StringBuffer();
-
- sb.append("domain:" + vbd.domain + " " +
- vbd.mode.toString() + " " +
- "segment:" + vbd.vbdnum + " " +
- "extents:" + extents.size() + " ");
- for (int loop = 0; loop < extents.size(); loop++)
- {
- Extent e = (Extent) extents.get(loop);
- sb.append("(disk:" + e.disk + " " +
- "offset:" + e.offset + " " +
- "size:" + e.size + ")");
- }
- return sb.toString();
- }
-
- void
- dump_xml (PrintWriter out)
- {
- out.println(" <virtual_disk>");
- out.println(" <name>" + name + "</name>");
- out.println(" <key>" + key + "</key>");
- if (expiry == null)
- {
- out.println(" <expiry>0</expiry>");
- }
- else
- {
- out.println(" <expiry>" + expiry.getTime() + "</expiry>");
- }
- out.println(" <extents>");
- for (int loop = 0; loop < extents.size(); loop++)
- {
- Extent e = (Extent) extents.get(loop);
- out.println(" <extent>");
- out.println(" <disk>" + e.disk + "</disk>");
- out.println(" <size>" + e.size + "</size>");
- out.println(" <offset>" + e.offset + "</offset>");
- out.println(" </extent>");
- }
- out.println(" </extents>");
- out.println(" </virtual_disk>");
-
- return;
- }
-
- /*
- * Add a partition as a XenoPartition.
- * Chop the partition in to extents and of size "size" sectors
- * and add them to the virtual disk.
- */
-
- void
- add_new_partition (Partition partition, long size)
- {
- int loop;
-
- for (loop = 0; loop < partition.nr_sects / size; loop++)
- {
- Extent extent = new Extent();
-
- extent.disk = partition.major << 8;
- extent.disk = extent.disk | (partition.minor >> 5) << 5;
- extent.size = size;
- extent.offset = partition.start_sect + (size * loop);
-
- add_extent(extent);
- }
-
- return;
- }
-
- public String
- getName()
- {
- return name;
- }
-
- public String
- getKey()
- {
- return key;
- }
-
- public String
- getExpiry()
- {
- return expiry.toString();
- }
-
- public int
- getExtentCount()
- {
- return extents.size();
- }
-
- public Extent
- getExtent(int index)
- {
- return (Extent) extents.get(index);
- }
-
-}
+++ /dev/null
-/*
- * VirtualDiskManager.java
- * 03.03.26 aho creation
- */
-
-package uk.ac.cam.cl.xeno.vdmanager;
-
-import java.util.Enumeration;
-import java.util.Vector;
-import java.util.Hashtable;
-import java.util.Date;
-import java.io.PrintWriter;
-
-public class
-VirtualDiskManager
-{
- VirtualDisk free_disk;
- Vector virtual_disks;
- Hashtable virtual_block_devices;
- Hashtable key_hash;
-
- VirtualDiskManager ()
- {
- free_disk = new VirtualDisk("free");
-
- virtual_disks = new Vector(10,5);
- flush_virtual_block_devices();
- key_hash = new Hashtable(100);
- }
-
- public VirtualDisk
- get_virtual_disk_key (String key)
- {
- return ((VirtualDisk) key_hash.get(key));
- }
-
- public void
- add_xeno_partition (Partition partition, long size)
- {
- free_disk.add_new_partition (partition, size);
- return;
- }
-
- /*
- * create a new virtual disk
- */
-
- public VirtualDisk
- create_virtual_disk(String name, long size, Date expiry)
- {
- VirtualDisk vd = new VirtualDisk (name, expiry);
-
- while (size > 0)
- {
- Extent e;
-
- e = free_disk.remove_extent();
- if (e == null)
- {
- return null;
- }
- size -= e.size;
- vd.add_extent(e);
- }
-
- add_virtual_disk(vd);
-
- return vd;
- }
-
- /*
- * delete a new virtual disk. extents go back into the free pool
- */
-
- public void
- delete_virtual_disk (String key)
- {
- VirtualDisk vd;
-
- vd = (VirtualDisk) key_hash.get(key);
- if (vd != null)
- {
- Extent e;
-
- key_hash.remove(key);
- virtual_disks.remove(vd);
-
- e = vd.remove_extent();
- while (e != null)
- {
- free_disk.add_extent(e);
- e = vd.remove_extent();
- }
- }
- return;
- }
-
- /*
- * reset the expiry time for a virtual disk
- */
-
- public void
- refresh_virtual_disk (String key, Date expiry)
- {
- VirtualDisk vd = (VirtualDisk) key_hash.get(key);
- if (vd != null)
- {
- vd.set_expiry(expiry);
- }
- }
-
- /*
- * create a new virtual block device
- */
- public VirtualBlockDevice
- create_virtual_block_device (String key, int domain, int vbd_num,
- String mode)
- {
- VirtualBlockDevice vbd = new VirtualBlockDevice();
- VirtualDisk vd = get_virtual_disk_key(key);
-
- if (vd == null)
- {
- System.err.println("create virtual block device error: unknown key " +
- "[" + key + "]");
- return null;
- }
-
- vbd.key = key;
- vbd.domain = domain;
- vbd.vbdnum = vbd_num;
-
- if (mode.equals(Mode.READ_ONLY.toString()) ||
- mode.equals("RO") ||
- mode.equals("ro"))
- {
- vbd.mode = Mode.READ_ONLY;
- }
- else if (mode.equals(Mode.READ_WRITE.toString()) ||
- mode.equals("RW") ||
- mode.equals("rw"))
- {
- vbd.mode = Mode.READ_WRITE;
- }
- else
- {
- System.err.println("create virtual block device error: unknown mode " +
- "[" + mode + "]");
- return null;
- }
-
- add_virtual_block_device(vbd);
-
- return vbd;
- }
-
- /*
- * delete a virtual block device
- */
- public void
- delete_virtual_block_device (int domain, int vbd_num)
- {
- Object hash = get_vbd_hash(domain, vbd_num);
- VirtualBlockDevice vbd = (VirtualBlockDevice)virtual_block_devices.remove(hash);
- return;
- }
-
- /*
- * flush all virtual block devices
- */
- public void
- flush_virtual_block_devices ()
- {
- /* isn't automatic garbage collection wonderful? */
- virtual_block_devices = new Hashtable(100);
- }
-
- public void
- add_virtual_disk (VirtualDisk vd)
- {
- virtual_disks.add(vd);
- key_hash.put(vd.get_key(), vd);
- }
-
- public void
- add_virtual_block_device (VirtualBlockDevice vbd)
- {
- Object hash = get_vbd_hash(vbd.domain, vbd.vbdnum);
- virtual_block_devices.put(hash, vbd);
- }
-
- Object
- get_vbd_hash (int domain, int vbd_num)
- {
- return new Integer(domain * 16 + vbd_num);
- }
-
- public void
- add_free (VirtualDisk vd)
- {
- free_disk = vd;
- }
-
- public String
- dump_virtualdisk (int segment)
- {
- if (segment < 0 || segment >= virtual_disks.size())
- {
- return null;
- }
- else
- {
- VirtualDisk vd = (VirtualDisk) virtual_disks.get(segment);
- return (vd.dump(true, true));
- }
- }
-
- public String
- dump_free()
- {
- return(free_disk.dump(true, false));
- }
-
- public String
- dump_virtualdisks()
- {
- StringBuffer sb = new StringBuffer();
-
- for (int i = 0; i < virtual_disks.size(); i++)
- {
- VirtualDisk vd = (VirtualDisk) virtual_disks.get(i);
- if (i == 0)
- {
- sb.append(vd.dump(false, true));
- }
- sb.append(vd.dump(false, false));
- }
-
- return sb.toString();
- }
-
- public String
- dump_virtualblockdevices()
- {
- StringBuffer sb = new StringBuffer();
- boolean first = true;
-
- for (Enumeration enumeration = virtual_block_devices.elements() ;
- enumeration.hasMoreElements() ;)
- {
- VirtualBlockDevice vbd = (VirtualBlockDevice) enumeration.nextElement();
- if (first)
- {
- sb.append(vbd.dump(true));
- first = false;
- }
-
- sb.append(vbd.dump(false));
- }
-
- return sb.toString();
- }
-
- public void
- dump_xml(PrintWriter out)
- {
- out.println("<free>");
- free_disk.dump_xml(out);
- out.println("</free>");
- out.println("<virtual_disks>");
- for (int i = 0; i < virtual_disks.size(); i++)
- {
- VirtualDisk vd = (VirtualDisk) virtual_disks.get(i);
- vd.dump_xml(out);
- }
- out.println("</virtual_disks>");
- out.println("<virtual_block_devices>");
- for (Enumeration enumeration = virtual_block_devices.elements() ;
- enumeration.hasMoreElements() ;)
- {
- VirtualBlockDevice vbd = (VirtualBlockDevice) enumeration.nextElement();
- vbd.dump_xml(out);
- }
-
- out.println("</virtual_block_devices>");
-
- return;
- }
-}